﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SQLite;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Zimmerreservierung.Controller;
using Zimmerreservierung.Model;

namespace Zimmerreservierung.Forms
{
    public partial class FormReservierungFruehzeitigeAbreise : Form
    {
        //protected SQLiteConnection connection;
        protected Reservierung reservierung;
        protected ReservierungsController rController;


        public FormReservierungFruehzeitigeAbreise(int id)
        {
            InitializeComponent();

            rController = ReservierungsController.getInstance();
            this.reservierung = rController.GetReservierung(id, false);

            this.btnSave.DialogResult = DialogResult.OK;
            this.btCancel.DialogResult = DialogResult.Cancel;

            this.cbBisNeuTime.DropDownStyle = ComboBoxStyle.DropDownList;
        }

        private void btnSave_Click(object sender, EventArgs e)
        {
            DateTime pickedDate = dtpBisNeu.Value;
            DateTime fruehzeitigesEndDatum = new DateTime(pickedDate.Year, pickedDate.Month, pickedDate.Day, 10, 0, 0);

            try
            {
                int result = rController.FruehzeitigeAbreise(reservierung.Id, fruehzeitigesEndDatum);
                if (result == -1)
                {
                    MessageBox.Show("Datum muss nach Startdatum liegen!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    DialogResult = System.Windows.Forms.DialogResult.None;
                    return;
                }
                else if (result == -2)
                {
                    MessageBox.Show("Datum muss vor Endatum liegen!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    DialogResult = System.Windows.Forms.DialogResult.None;
                    return;
                }

                MessageBox.Show("Reservierung erfolgreich aktualisiert.");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                DialogResult = System.Windows.Forms.DialogResult.None;
                return;
            }
        }

        private void UpdateReservierung(string fruehzeitigesEndDatum)
        {
            
        }

        private void btCancel_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}
